Multi-tier system is a computer system architecture in which multiple groups of interconnected computers execute their respective tasks while communicating with each other to exchange information. As an example of this multi-tier architecture, a three-tier web system is known as a system of web servers, application servers, and database servers.
The multi-tier system may employ a system analyzer which observes messages exchanged between servers so as to monitor the operation of the system. The system analyzer achieves its purpose without the need for modifying service functions implemented on the computers, since it is designed to analyze the target system on the basis of messages observed on the network. The system analyzer outputs analysis results such as information about processing times of individual transactions in the services that the multi-tier system offers.
More specifically, the above system analyzer observes messages flowing over network links and analyzes what tasks were invoked, as well as when and where. Here the tasks to be analyzed include execution of applications, access to databases, and the like. The system analyzer may use some models that define which tasks can be called by each task. During the system observation, the system analyzer captures messages on the network and compares event data obtained from those messages with relevant models, thereby calculating execution times that the individual servers spend to jointly provide services. See, for example, Japanese Laid-open Patent Publication No. 2006-011683.
The system analyzer examines a time series of events. One proposed method achieves this by breaking down the given time series of event records into a plurality of semantic sets. See, for example, Japanese Laid-open Patent Publication No. 2003-308229.
Servers execute their tasks in response to a call from other servers. Their execution times are, however, so short that a large burden is placed on the analyzer device in investigating the relationships between calling tasks and callee tasks which match with a relevant model. More specifically, the analyzer device identifies a caller-callee relationship matching with a specific model, based on a criterion which states that a callee task should begin after the calling task and end before the calling task. The analyzer device searches for a calling task (caller) associated with a given called task (callee), within the population of tasks qualified by the above criterion. It is noted that the number of candidates for the caller will increase as the callee executes the task of interest in a shorter time, thus causing the analyzer apparatus to spend more time to find a likely caller task. For example, application servers often repeat data access requests to a database server at short intervals, and thus it takes a long time to investigate caller-callee relationships that match with a relevant model.